// 开屏广告页面
const appConfig = require('../../config/app.js')

Page({
  data: {
    countdown: 3,
    canSkip: false,
    adData: null,
    showAd: true
  },

  onLoad(options) {
    console.log('启动页加载，参数:', options);
    try {
      this.initSplashAd();
      this.startCountdown();
    } catch (error) {
      console.error('Splash page error:', error);
      // 即使出错也要确保跳转到主页面
      setTimeout(() => {
        this.goToMain();
      }, 1000);
    }
  },

  // 初始化开屏广告
  initSplashAd() {
    try {
      // 获取广告配置（优先使用本地存储，否则使用默认配置）
      const localAdConfig = wx.getStorageSync('adConfig');
      const adConfig = localAdConfig || appConfig.adConfig;

      if (!adConfig.enabled) {
        // 如果广告被禁用，直接跳转
        setTimeout(() => {
          this.goToMain();
        }, 1000);
        return;
      }

      // 尝试加载广告数据，如果失败则显示默认内容
      try {
        // 模拟广告数据（实际项目中从服务器获取）
        this.setData({
          adData: {
            image: '/images/splash-ad.jpg',
            title: '无尽冬日',
            desc: '大哥，来一局？',
            actionText: '立即体验'
          }
        });
      } catch (adError) {
        console.warn('广告数据加载失败，显示默认内容:', adError);
        // 不设置adData，让页面显示默认欢迎内容
      }
    } catch (error) {
      console.error('Init ad error:', error);
      // 出错时不设置adData，显示默认内容
    }
  },

  // 开始倒计时
  startCountdown() {
    try {
      const timer = setInterval(() => {
        try {
          const countdown = this.data.countdown - 1;
          this.setData({ countdown });

          if (countdown <= 0) {
            clearInterval(timer);
            this.goToMain();
          }
        } catch (error) {
          console.error('倒计时更新出错:', error);
          clearInterval(timer);
          this.goToMain();
        }
      }, 1000);

      // 2秒后可跳过
      setTimeout(() => {
        try {
          this.setData({ canSkip: true });
        } catch (error) {
          console.error('设置跳过标志出错:', error);
        }
      }, 2000);
    } catch (error) {
      console.error('倒计时初始化出错:', error);
      // 出错时直接倒计时1秒后跳转
      setTimeout(() => {
        this.goToMain();
      }, 1000);
    }
  },

  // 跳过广告
  skipAd() {
    if (this.data.canSkip) {
      this.goToMain();
    }
  },

  // 点击广告
  onAdClick() {
    // 记录广告点击
    this.recordAdClick();
    
    // 直接跳转到当前小程序的首页，而不是其他小程序
    console.log('点击广告，跳转到首页');
    
    // 跳转到首页
    wx.redirectTo({
      url: '/pages/index/index',
      success: () => {
        console.log('跳转到首页成功');
      },
      fail: (err) => {
        console.log('跳转失败', err);
        // 如果跳转失败，使用备用方案
        wx.reLaunch({
          url: '/pages/index/index'
        });
      }
    });
  },

  // 图片加载错误处理
  onImageError(e) {
    console.warn('Image load error:', e);
    // 图片加载失败不做特殊处理，允许页面继续显示
  },

  // 记录广告点击
  recordAdClick() {
    // 简化广告点击记录，移除网络请求
    console.log('广告被点击');
  },

  // 跳转到主页面
  goToMain() {
    console.log('开始跳转到主页面');
    try {
      // 获取启动参数，检查是否有房间相关参数
      let query = {};
      try {
        const launchOptions = wx.getLaunchOptionsSync();
        query = launchOptions.query || {};
        console.log('启动参数:', query);
      } catch (error) {
        console.error('获取启动参数失败:', error);
        query = {};
      }
      
      // 如果有房间参数，保存到本地存储
      if (query.roomCode) {
        console.log('检测到房间参数:', query.roomCode);
        // 保存房间代码到本地存储
        try {
          wx.setStorageSync('pending_room_code', query.roomCode);
          console.log('房间代码已保存到本地存储');
        } catch (storageError) {
          console.error('存储房间代码失败:', storageError);
          // 存储失败不影响页面跳转
        }
      }
      
      // 跳转延迟200ms，确保页面渲染完成
      setTimeout(() => {
        console.log('执行页面跳转');
        try {
          // 使用reLaunch确保跳转成功，避免页面栈问题
          wx.reLaunch({
            url: '/pages/index/index',
            success: () => {
              console.log('跳转到首页成功');
            },
            fail: (navError) => {
              console.error('reLaunch跳转失败:', navError);
              // 尝试使用redirectTo作为备用方案
              wx.redirectTo({
                url: '/pages/index/index',
                fail: (err) => {
                  console.error('redirectTo也失败:', err);
                  // 最后尝试navigateTo
                  wx.navigateTo({
                    url: '/pages/index/index',
                    fail: (finalErr) => {
                      console.error('所有跳转方法都失败:', finalErr);
                    }
                  });
                }
              });
            }
          });
        } catch (error) {
          console.error('执行跳转时出错:', error);
          // 尝试使用兜底跳转方法
          try {
            wx.reLaunch({
              url: '/pages/index/index'
            });
          } catch (finalError) {
            console.error('兜底跳转也失败:', finalError);
          }
        }
      }, 200);
    } catch (error) {
      console.error('goToMain执行过程出错:', error);
      // 最安全的兜底方案
      setTimeout(() => {
        try {
          wx.reLaunch({
            url: '/pages/index/index'
          });
        } catch (finalError) {
          console.error('最终兜底跳转失败:', finalError);
        }
      }, 200);
    }
  }
});
